package com.dingding.order.core.history.dao;

import java.util.List;

import com.dingding.order.core.history.dto.TakeMileageDTO;
import com.dingding.order.dto.history.HistoryOrderDto;

/**
 * @Description:历史订单dao
 * @author fengshuonan
 * @date 2016年8月25日 下午3:09:13
 * @version 叮叮搭车
 * @since 2.4
 */
public interface IHistoryOrderDao {

	/**
	 * @Description:获取历史订单
	 * @param userId 用户id 
	 * @param orderStatus 订单状态（5：已完成  6：已取消）
	 * @param pageIndex 当前页
	 * @param pageSize	每页个数
	 * @author fengshuonan
	 * @return List<HistoryOrderDto> 历史订单
	 * @since 2.4
	 */
	public List<HistoryOrderDto> getHistoryOrders(String userId,Integer orderStatus,Integer pageIndex,Integer pageSize,Integer userType);

	/**
	 * @Description:获取历史订单
	 * @param userId 用户id 
	 * @param pageIndex 当前页
	 * @param pageSize	每页个数
	 * @author YHQ
	 * @return List<HistoryOrderDto> 历史订单
	 * @since 2.5.5
	 */
	public List<HistoryOrderDto> completeAndCancelOrder(String userId,Integer pageIndex,Integer pageSize,Integer userType);
	
	/**
	 * 
	 * @Title: takeMileage 
	 * @Description: 接乘里程
	 * @param userId 用户Id
	 * @since V2.4.0
	 * @author YHQ 
	 * @return TakeMileageDTO    返回类型
	 * 
	 */
	public TakeMileageDTO takeMileage(String userId);
	
	/**
	 * 
	 * @Title: taxiTakeMileage 
	 * @Description: 接乘里程
	 * @param userId 用户Id
	 * @since V2.4.0
	 * @author YHQ 
	 * @return TakeMileageDTO    返回类型
	 * 
	 */
	public TakeMileageDTO taxiTakeMileage(String userId);
	
	/**
	 * 
	 * @Title: getMileages 
	 * @Description: 获取乘客的接乘里程和搭乘里程
	 * @param userId 用户Id
	 * @author YHQ 
	 * @return TakeMileageDTO    返回类型
	 */
	public TakeMileageDTO getMileages(String userId);
	
}
